import random
import string
import time


def generate_code(prefix):
    """
        生成28位的流水号/编号。3位前缀+14位的时间+7位的微秒+4位随机数
    """
    # 运行结果（示例）：
    # ORD-20240904-21:01:23-8363095-5029
    # 加上连字符“-”以及“：”是34位

    seeds = string.digits
    # k=4代表长度是4位
    random_str = random.choices(seeds, k=4)  # 是一个列表
    random_str = ''.join(random_str)
    code_no = "%s-%s-%s-%s" % (
        prefix, time.strftime('%Y%m%d-%H:%M:%S', time.localtime(time.time())),
        str(time.time()).replace('.', '')[-7:], random_str
    )

    return code_no

if __name__ == '__main__':
    print(generate_code('ORD'))